#ifndef WFQQUEUE_H
#define WFQQUEUE_H

#include <queue>
#include <vector>
#include "ns3/queue.h"

namespace ns3 {

class WFQQueue : public Queue {
public:
  static TypeId GetTypeId(void);
  WFQQueue();
  virtual ~WFQQueue();

private:
  virtual bool DoEnqueue(Ptr<QueueItem> item);
  virtual Ptr<QueueItem> DoDequeue(void);
  virtual Ptr<const QueueItem> DoPeek(void) const;

  std::vector<std::queue<Ptr<QueueItem> > >  m_packets;
  //std::queue<Ptr<QueueItem> >  m_packets;
}; // class WFQQueue

}  // namespace ns3

#endif /* WFQQUEUE_H */
